#include <stdint.h>
#include <stdio.h>

int colorbar_generate(uint8_t* buf, int width, int height)
{
	int row = 0; // 行
	int col = 0; // 列
	int num = 0; // 彩条序号
	int w = 0;   // 单行彩条的宽度

	/**
	 * colorbar 彩条一共8种颜色，由红绿蓝3色排列组合而来
	 * 颜色格式为 RGB565
	 */
	uint16_t color[8] = {
		0x0000, // 黑 0000 0000 0000 0000
		0x001F, // 蓝 0000 0000 0001 1111
		0x07E0, // 绿 0000 0111 1110 0000
		0x07FF, // 青 0000 0111 1111 1111
		0xF800, // 红 1111 1000 0000 0000
		0xF81F, // 紫 1111 1000 0001 1111
		0xFFE0, // 黄 1111 1111 1110 0000
		0xFFFF, // 白 1111 1111 1111 1111
	};

	if (NULL == buf) {
		return -1;
	}

	w = width / 8;

	for (row = 0; row < height; row++) {
		for (num = 0; num < 8; num++) {
			for (col = w * num; col < w * (num + 1); col++) {
				/* 高字节在前, 低字节在后 */
				*(buf + (width * row + col) * 2) = color[num] >> 8;
				*(buf + (width * row + col) * 2 + 1) = color[num] & 0xff;
			}
		}
	}

	return 0;
}
